Electronic devices store data, which can be either data related to characteristics of a device or executable code required for the execution of functions and/or computer application programs for the device. Such electronic devices use a virtual memory technique to efficiently store and manage data.
In the virtual memory technique, a volatile storage medium and a nonvolatile storage medium are mapped to manage data and code and demand paging is performed to retrieve from the nonvolatile storage medium to the volatile storage medium only data or code that is needed. An example of nonvolatile storage medium is known as flash ram or flash memory (as is well known the acronym RAM refers to random access memory). An example of volatile storage medium may be referred to as relatively high speed RAM or simply as RAM. Both flash ram and RAM may be written to, read, re-written to, erased, and so on, depending, for example, on the nature of the nonvolatile and volatile memory and the electronic equipment and method in which used.
In the mobile environment, a nonvolatile memory (e.g., a Not AND (NAND) flash memory or other flash memory or nonvolatile memory) is a nonvolatile storage medium that functions as a disk of the mobile equipment. The nonvolatile storage medium can store a large capacity of data or code despite its simple structure.
However, with many nonvolatile memory devices, write performance is comparatively slower than a read performance and frequent writes shorten its operational life and, therefore, it is difficult for the mobile environment to utilize the virtual memory technique of the general PC environment. Thus, mobile equipment may apply a demand paging technique of caching only data and code, such as data and code that is in read only region, having no change in the content of RAM.
Demand paging is a method for reading only data or code that is required for a specific process from the nonvolatile storage medium, temporarily downloading the data or code to the physical storage medium, and reading, e.g., using, the data or code from the physical storage medium. In the execution of demand paging, the only information read (e.g., data and/or code) is information that is required for a process and for rapidly processing the information in the volatile storage medium, e.g., a high speed RAM. In other words, demand paging refers to a memory management technique for storing data and code of the device in a physical storage medium and for reading only part of the data or and/or code from the physical storage medium whenever it is needed.
With the development of mobile equipment, more functions are gradually added to the mobile equipment to realize a more convenient mobile environment. Adding more functions to the mobile equipment requires an increase in the amount of software or a demand for RAM. This is followed by an increase in an amount of RAM needed in a device. However, RAM is a relatively expensive resource.
In recent years, a demand for cheap electronic devices is also increasing at the same time. Thus, in order to meet the problem of two conflicting requirements, RAM has to be more efficiently used in order to enable a lesser amount of RAM to be needed.
Another problem in portable electronic device concerns conservation of electrical power, especially as such devices become more complex, capable of more functions, and used for longer periods of time without recharging than in the past. For example, mobile phones are used not only for telephone communications, but also for text messaging, playing of music, video and still photographs, taking of video and photographs, gps functions, and so on.
One approach to conserve energy in mobile electronic equipment has been to use embedded Multimedia Card memory devices (sometimes referred to as eMMC). eMMC devices use the same channel in a write operation or process and in a read operation or process. Thus, both writing and reading cannot be carried out simultaneously.
The prior standard solution for using eMMC memory devices when a there is an ongoing write operation, has been to wait until the write operation has been concluded before permitting a read operation to be requested. It has been proposed to improve the read latency for high priority reads for eMMC devices. One proposal is to allow interrupting an ongoing write operation and thereby shorten the latency for the high priority read. There is a potential problem with this proposal. For example, consider a write operation that has been requested to write the (10) blocks into the embedded memory (eMMC). After writing down four (4) blocks, the operation or process is interrupted by a high priority read operation or process. When the high priority read operation has been concluded, the file system is resuming the write operation in order to write down the remaining six (6) blocks, but then a new high priority read request may arrive, and the write operation again is being interrupted. The default source of high priority read is demand paging, which is a code execution method e.g., as was mentioned above. During startup of the electronic device or when launching a new application, there can be a whole series of page faults that will request high priority read operations. In the foregoing scenario, there may be several seconds delay before the write command can be concluded, thus wasting time and causing frustration to the user.